
package com.be.beadmin.service.service;

import com.be.beadmin.common.entity.PageEntity;
import com.be.beadmin.service.dto.input.DictDataDto;
import com.be.beadmin.service.dto.input.DictTypeDataDto;
import com.be.beadmin.service.dto.output.DictDataEx;
import com.be.beadmin.service.entity.DictData;
import com.be.beadmin.service.entity.DictType;
import com.be.beadmin.service.entity.DictTypeEntity;
import org.springframework.data.domain.Page;

import java.util.HashMap;
import java.util.List;

/**
* @description 服务接口
* @author zjm
* @date 2023-02-02
**/
public interface DictDataService {

    /**
    * 分页的查询接口
    * @param pageEntity
    * @return
    */
    Page<DictDataEx> getDictDataByPage(PageEntity pageEntity);

    /**
    * @param dictDataDto
    */
    void addDictData(DictDataDto dictDataDto);

    /**
    * @param dictDataDto
    */
    void updateDictData(DictDataDto dictDataDto);

    /**
    * @param id
    */
    void delDictData(String id);

    /**
    * 删除多个角色
    * @param ids
    */
    void delDictDatas (List<String> ids);

    /**
     * 根据字典类型编号查找
     * @param dictType 字典类型
     * @return
     */
    List<DictDataEx> getDictDataExByDictTypeId(DictType dictType);

    List<DictData> getDictDataByDictTypeId(DictType dictType);
    List<String> getDictDataKeyNameByDictTypeId(DictType dictType);

    HashMap<String,String> getDictDataMapByDictTypeId(DictType duration);

    Page<DictDataEx> getDictDataByPageAndDictType(DictTypeEntity pageEntity);

    List<String> getDictDataKeyByDictTypeName(String dictTypeName);

    /**
     * 添加一条字典数据通过Id
     * @param dictDataDto
     */
    void addDictDataByDictTypeId(DictTypeDataDto dictDataDto);
}